import numpy as np
import random

# 设置地图大小
map_size = 10
# 设置墙的数量（这只是一个示例，你可以根据需要调整）
num_walls = 50
# 初始化地图为全空（0表示空地，1表示墙）
map_array = np.zeros((map_size, map_size), dtype=int)

# 随机生成墙的位置
for _ in range(num_walls):
    x = random.randint(0, map_size - 1)
    y = random.randint(0, map_size - 1)
    map_array[x, y] = 1  # 标记为墙

# 确保地图不封闭：找到边界上的墙并移除一些
# 注意：这只是一个简单的示例，可能不足以确保地图完全不封闭
# 更好的做法可能是实现一个更复杂的算法来确保地图的连通性
for x in range(map_size):
    if map_array[x, 0] == 1:  # 顶部边界的墙
        map_array[x, 0] = 0
    if map_array[x, map_size - 1] == 1:  # 底部边界的墙
        map_array[x, map_size - 1] = 0
for y in range(map_size):
    if map_array[0, y] == 1:  # 左侧边界的墙
        map_array[0, y] = 0
    if map_array[map_size - 1, y] == 1:  # 右侧边界的墙
        map_array[map_size - 1, y] = 0

    # 输出地图（可选）
for row in map_array:
    print(''.join(['#' if cell == 1 else '.' for cell in row]))

    # 如果需要，可以将地图保存为文件或进行其他处理